package com.lagou.edu.user.remote;

import com.lagou.edu.common.result.ResponseDTO;
import com.lagou.edu.user.dto.WeixinDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * 微信用户管理
 */
@FeignClient(name = "edu-user-boot", path = "/user")
public interface UserWeixinRemoteService {

    /**
     * 根据userId获取微信用户信息
     */
    @GetMapping("/getUserWeixinByUserId")
    WeixinDTO getUserWeixinByUserId(@RequestParam("userId") Integer userId);

    /**
     * 根据openId获取微信用户信息
     */
    @GetMapping("/getUserWeixinByOpenId")
    WeixinDTO getUserWeixinByOpenId(@RequestParam("openId") String openId);

    /**
     * 根据unionId获取微信用户信息
     */
    @GetMapping("/getUserWeixinByUnionId")
    WeixinDTO getUserWeixinByUnionId(@RequestParam("unionId") String unionId);

    /**
     * 保存微信用户信息
     */
    @PostMapping("/saveUserWeixin")
    WeixinDTO saveUserWeixin(@RequestBody WeixinDTO weixinDTO);

    /**
     * 修改微信用户信息
     */
    @PostMapping("/updateUserWeixin")
    boolean updateUserWeixin(@RequestBody WeixinDTO weixinDTO);

    /**
     * 微信绑定
     */
    @PostMapping("/bindUserWeixin")
    ResponseDTO<WeixinDTO> bindUserWeixin(@RequestBody WeixinDTO weixinDTO);

    /**
     * 微信解绑
     */
    @PostMapping("/unBindUserWeixin")
    boolean unBindUserWeixin(@RequestParam("userId") Integer userId);

}
